package demo.thread;

/**
 * 这个卖票的例子展示了没有同步会导致的错误，比如出现0或者卖同样的一张票：同一时间段多个线程争抢同一个资源导致的问题
 * 解决该问题：使用同步代码块或者同步方法
 * @author david
 *
 */
public class SynDemo1 implements Runnable {
	
	private int count=35;
	
    public void run() {
        for(int i=0;i<10;++i){
        	if(count>0){
                try{
                    Thread.sleep(100);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread()+":"+count--);
            }
        }
    }
 
    public static void main(String[] args) {
    	SynDemo1 r=new SynDemo1();
        Thread h1=new Thread(r);
        Thread t2=new Thread(r);
        Thread t3=new Thread(r);
        h1.start();
        t2.start();
        t3.start();
    }
    
}
